package javase.io;

import java.io.File;
import java.io.FileReader;

/**
 *
 *  统计文件夹大小和文件夹中文件夹的个数和文件的个数
 * @author LiShaowen
 * @date 2020/9/8 14:03
 */
public class DirTest1 {
    // 文件夹路径
    private String path;
    // 文件夹大小
    private int size;
    // 文件夹个数
    private int dirCount;
    // 文件个数
    private int fileCount;
    // File对象
    private File file;
    public DirTest1(){};

    public DirTest1(String path){
        this.path = path;
        this.file = new File(path);
        this.count(this.file);
    }

    public int getSize() {
        return size;
    }

    public int getDirCount() {
        return dirCount;
    }

    public int getFileCount() {
        return fileCount;
    }

    private void count(File file){
        // 获取大小
        if (null!=file && file.exists()) {
            if (file.isFile()) {
                // 文件夹大小
                size += file.length();
                // 文件个数
                fileCount++;
            }else{
                // 文件夹个数（包含自身）
                dirCount++;
                for (File listFile : file.listFiles()) {
                    count(listFile);
                }
            }
        }
    }

    public static void main(String[] args) {
        DirTest1 dirTest1 = new DirTest1("E:/IDEAProject/java/src/main/java");
        System.out.println("文件夹大小"+dirTest1.getSize());
        System.out.println("文件夹个数"+dirTest1.getDirCount());
        System.out.println("文件个数"+ dirTest1.getFileCount());
    }

}
